package com.hsd.whb.converter;

import com.hsd.whb.entity.Meeting;
import com.hsd.whb.enums.MeetingStatusEnum;
import com.hsd.whb.repository.RecorderRepository;
import com.hsd.whb.service.RecorderService;
import com.hsd.whb.utils.BeanUtil;
import com.hsd.whb.pojo.output.MeetingVO;
import com.hsd.whb.utils.EnumUtil;

import java.util.ArrayList;
import java.util.List;

public class MeetingConverter {

    public static MeetingVO convertToMeetingVO(Meeting meeting) {
        MeetingVO meetingVO = new MeetingVO();
        BeanUtil.copyProperties(meeting, meetingVO);
        meetingVO.setStatus(meeting.getMeetingStatus());
        meetingVO.setMeetingStatus(EnumUtil.getStringByCode(meeting.getMeetingStatus(), MeetingStatusEnum.class));
        return meetingVO;
    }

    public static MeetingVO convertToMeetingVO(Meeting meeting, RecorderRepository recorderRepository) {
        MeetingVO meetingVO = new MeetingVO();
        BeanUtil.copyProperties(meeting, meetingVO);
        meetingVO.setStatus(meeting.getMeetingStatus());
        meetingVO.setMeetingStatus(EnumUtil.getStringByCode(meeting.getMeetingStatus(), MeetingStatusEnum.class));
        meetingVO.setUsername(recorderRepository.getOne(meeting.getRecorderId()).getUsername());
        return meetingVO;
    }

    public static List<MeetingVO> convertToMeetingVOList(List<Meeting> meetings, RecorderRepository recorderRepository) {
        List<MeetingVO> list = new ArrayList<>();
        for (Meeting meeting : meetings) {
            list.add(convertToMeetingVO(meeting, recorderRepository));
        }
        return list;
    }

}
